package secondStage.part3.Map集合.HashMap集合遍历;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * @ClassName: [HashMapTest1]
 * @Description: HashMap集合存储学生对象并遍历
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-03]
 * @Version: [v1.0]
 */
/*
需求：
    创建一个HashMap集合，键是学生对象(Student)，值是居住地(String)。存储多个键值对元素，并遍历。要求保证键的唯一性:如果学生对象的成员变量值相同，我们就认为是同一个对象
思路:
    1:定义学生类
    2:创建HashMap集合对象3:创建学生对象
    4:把学生添加到集合5:遍历集合
    6 :在学生类中重写两个方法
        hashcode()
        equaLs()
*/
public class HashMapTest1 {
    public static void main(String[] args) {
        //创建HashMap集合对象
        HashMap<Student1, String> hm = new HashMap<>();
        //创建学生对象
        Student1 s1 = new Student1("张曼玉", 12);
        Student1 s2 = new Student1("王祖贤", 34);
        Student1 s3 = new Student1("张敏", 22);
        Student1 s4 = new Student1("张敏", 22);
        //把学生添加到集合
        hm.put(s1, "西安");
        hm.put(s2, "香港");
        hm.put(s3, "九龙");
        //在Student1类中，重写equals()和hashCode()方法才会发生更改
        hm.put(s4, "北京");
        //方式1:键找值
        Set<Student1> keySet = hm.keySet();
        for (Student1 key : keySet) {
            String value = hm.get(key);
            System.out.println(key.getName() + "," + key.getAge() + "," + value);
        }
    }
}
